home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 30
/
Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso
/
Aminet
/
dev
/
mui
/
bcc_src.lha
/
Parser
/
BCC_BUG
next >
Wrap
Internet Message Format
|
1998-01-13
|
19KB
From mkalline@cc.hut.fi Mon Jan 12 17:57:44 1998
Received: from vipunen.hut.fi by cerber.ii.tuniv.szczecin.pl via ESMTP (940816.SGI.8.6.9/940406.SGI)
for <cret@cerber.ii.tuniv.szczecin.pl> id RAA12008; Mon, 12 Jan 1998 17:56:55 +0100
Received: from cc.hut.fi (mkalline@cc-dialin1-18.hut.fi [130.233.251.18])
by vipunen.hut.fi (8.8.8/8.8.7) with SMTP id RAA120010
for <cret@cerber.ii.tuniv.szczecin.pl>; Mon, 12 Jan 1998 17:54:22 +0200
From: Mikko Kallinen <mkalline@cc.hut.fi>
To: Rafal Mantiuk <cret>
Date: Mon, 12 Jan 1998 17:43:00 +0200
Message-ID: <yam7316.20.2017292592@pop.hut.fi>
In-Reply-To: <34B9E439.41C6@cerber.ii.tuniv.szczecin.pl>
X-Mailer: YAM 1.3.4 [020] - Amiga Mailer by Marcel Beck
Subject: Re: BCC
MIME-Version: 1.0
Content-type: multipart/mixed; boundary="BOUNDARY.7316.21.2017292592.1"
Warning: This is a message in MIME format. Your mail reader does not
support MIME. Some parts of this message will be readable as plain text.
To see the rest, you will need to upgrade your mail reader.
This message was composed on an Amiga using the YAM mailer.
YAM is available at http://bitcom.ch/~mbeck/
--BOUNDARY.7316.21.2017292592.1
Content-Type: text/plain
On 12-Jan-98, Rafal Mantiuk wrote:
> I can not help much if I don't have an example of .bc source that
> hangs the program. So, if you could send me the .bc that coused the
> problem I'll look into the code and try to fix it.
Okay. I tested BCC after receiving your reply with both Mungwall and
Enforcer running. The program didn't crash and it produced C code that
compiled and ran perfectly well. I'll include the Mainwin.bc and also
the .bh files that were scanned.
The Enforcer output seems to have only byte-writes to 00000000, but
sometimes there are also long-reads from 002?????, an address which is
just above the end of chip memory and where I don't have any kind of
memory at all.
BTW the program I'm developing is a 3D object modeler :)
This is what was printed in the CLI
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
BCC precompiler v3.3
Translating "Mainwin.bc" into "Mainwin.c"
Scanning "App.bh"
Scanning "Mainwin.bh"
Scanning "View.bh"
This is what Enforcer printed
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
BYTE-WRITE to 00000000 data=00 PC: 78443DC2
USP: 7836F7EC SR: 0004 SW: 0711 (U0)(-)(-) TCB: 78081B68
Data: 783DDAFE 783DDAFE 00000001 78130000 00000000 1E091BC5 1E01B43D 7843E524
Addr: 783DB8E8 00000000 783DDA4C 783DDAFE 782A2730 7836F8CA 783DB8E8 --------
Stck: 00000000 78130000 7836F8F0 783DCDA4 783DDA4C 7843FBF0 783DDA4C 7836F84C
Stck: 783DB8E8 0001783D CDA40000 000000FF 781379E4 0000000B 7836F8F0 7836F9F6
Name: "Shell Process" CLI: "bcc" Hunk 0000 Offset 0000589A
BYTE-WRITE to 00000000 data=00 PC: 78443DC2
USP: 7836F7EC SR: 0004 SW: 0711 (U0)(-)(-) TCB: 78081B68
Data: 783DE9CE 783DE9CE 00000001 78130000 00000000 1E091BC5 1E01B43D 7843E524
Addr: 783DE472 00000000 783DE91C 783DE9CE 782A2730 7836F8CA 783DE472 --------
Stck: 00000000 781379E4 7836F8F0 783DE57C 783DE91C 7843FBF0 783DE91C 7836F84C
Stck: 783DE472 0001783D E57C0000 000000FF 781379E4 0000000B 7836F8F0 7836F9F6
Name: "Shell Process" CLI: "bcc" Hunk 0000 Offset 0000589A
BYTE-WRITE to 00000000 data=00 PC: 78443DC2
USP: 7836F7EC SR: 0004 SW: 0711 (U0)(-)(-) TCB: 78081B68
Data: 783DEAEE 783DEAEE 00000003 78130000 00000000 1E091BC5 1E01B43D 7843E524
Addr: 783DE482 00000000 783DEA3C 783DEAEE 782A2730 7836F8CA 783DE482 --------
Stck: 00000000 781379E4 7836F8F0 783DE57C 783DEA3C 7843FBF0 783DEA3C 7836F84C
Stck: 783DE482 0003783D E57C0000 000000FF 781379E4 0000000B 7836F8F0 7836F9F6
Name: "Shell Process" CLI: "bcc" Hunk 0000 Offset 0000589A
BYTE-WRITE to 00000000 data=00 PC: 78443DC2
USP: 7836F7EC SR: 0004 SW: 0711 (U0)(-)(-) TCB: 78081B68
Data: 783DEC0E 783DEC0E 00000003 78130000 00000000 1E091BC5 1E01B43D 7843E524
Addr: 783DE494 00000000 783DEB5C 783DEC0E 782A2730 7836F8CA 783DE494 --------
Stck: 00000000 781379E4 7836F8F0 783DE57C 783DEB5C 7843FBF0 783DEB5C 7836F84C
Stck: 783DE494 0003783D E57C0000 000000FF 781379E4 0000000B 7836F8F0 7836F9F6
Name: "Shell Process" CLI: "bcc" Hunk 0000 Offset 0000589A
BYTE-WRITE to 00000000 data=00 PC: 78443DC2
USP: 7836F7EC SR: 0004 SW: 0711 (U0)(-)(-) TCB: 78081B68
Data: 783DED2E 783DED2E 00000003 78130000 00000000 1E091BC5 1E01B43D 7843E524
Addr: 783DE4A6 00000000 783DEC7C 783DED2E 782A2730 7836F8CA 783DE4A6 --------
Stck: 00000000 781379E4 7836F8F0 783DE57C 783DEC7C 7843FBF0 783DEC7C 7836F84C
Stck: 783DE4A6 0003783D E57C0000 000000FF 781379E4 0000000B 7836F8F0 7836F9F6
Name: "Shell Process" CLI: "bcc" Hunk 0000 Offset 0000589A
BYTE-WRITE to 00000000 data=00 PC: 78443DC2
USP: 7836F7EC SR: 0004 SW: 0711 (U0)(-)(-) TCB: 78081B68
Data: 783DEE4E 783DEE4E 00000003 78130000 00000000 1E091BC5 1E01B43D 7843E524
Addr: 783DE4BB 00000000 783DED9C 783DEE4E 782A2730 7836F8CA 783DE4BB --------
Stck: 00000000 781379E4 7836F8F0 783DE57C 783DED9C 7843FBF0 783DED9C 7836F84C
Stck: 783DE4BB 0003783D E57C0000 000000FF 781379E4 0000000B 7836F8F0 7836F9F6
Name: "Shell Process" CLI: "bcc" Hunk 0000 Offset 0000589A
BYTE-WRITE to 00000000 data=00 PC: 78443DC2
USP: 7836F7EC SR: 0004 SW: 0711 (U0)(-)(-) TCB: 78081B68
Data: 783DEF6E 783DEF6E 00000003 78130000 00000000 1E091BC5 1E01B43D 7843E524
Addr: 783DE4D4 00000000 783DEEBC 783DEF6E 782A2730 7836F8CA 783DE4D4 --------
Stck: 00000000 781379E4 7836F8F0 783DE57C 783DEEBC 7843FBF0 783DEEBC 7836F84C
Stck: 783DE4D4 0003783D E57C0000 000000FF 781379E4 0000000B 7836F8F0 7836F9F6
Name: "Shell Process" CLI: "bcc" Hunk 0000 Offset 0000589A
BYTE-WRITE to 00000000 data=00 PC: 78443DC2
USP: 7836F7EC SR: 0004 SW: 0711 (U0)(-)(-) TCB: 78081B68
Data: 783DF08E 783DF08E 00000003 78130000 00000000 1E091BC5 1E01B43D 7843E524
Addr: 783DE4EA 00000000 783DEFDC 783DF08E 782A2730 7836F8CA 783DE4EA --------
Stck: 00000000 781379E4 7836F8F0 783DE57C 783DEFDC 7843FBF0 783DEFDC 7836F84C
Stck: 783DE4EA 0003783D E57C0000 000000FF 781379E4 0000000B 7836F8F0 7836F9F6
Name: "Shell Process" CLI: "bcc" Hunk 0000 Offset 0000589A
--BOUNDARY.7316.21.2017292592.1
Content-Type: text/plain; charset=iso-8859-1; name="Mainwin.bc"
Content-Transfer-Encoding: quoted-printable
#include <math.h>
#include <proto/exec.h>
#include <proto/intuition.h>
#include <proto/dos.h>
#include <proto/asl.h>
#include <dos/dos.h>
#include <libraries/asl.h>
#include <intuition/intuition.h>
#include "global.h"
#include "model.h"
#include "load.h"
#include "App.bh"
#include "Mainwin.bh"
#include "View.bh"
#define fract(n) (n - floor(n))
static __saveds __asm void IntuiMsgFunc(register __a1 struct IntuiMessage=
*,register __a2 struct FileRequester *);
static char *getfilename(Object *,char *,char *,char *,char);
cleardata Method Mainwin::Mainwin():
MUIA_Window_Title, "Geotto",
MUIA_Window_ID, MAKE_ID('M','A','I','N'),
MUIA_Window_NeedsMouseObject, TRUE,
/*
MUIA_Window_CloseGadget, FALSE,
MUIA_Window_DepthGadget, FALSE,
MUIA_Window_DragBar, FALSE,
MUIA_Window_Backdrop, TRUE,
MUIA_Window_Borderless, TRUE,
*/
WindowContents, VGroup,
Child, HGroup,
Child, VGroup,
MUIA_Weight, 0,
Child, SimpleButton("About"),
Child, newobj =3D KeyButton("New",'n'),
Child, TextObject,
MUIA_Text_Contents, "Fetch",
End,
Child, loadobj =3D KeyButton("Load",'l'),
Child, KeyButton("Save",'s'),
Child, KeyButton("Save As",'s'),
Child, TextObject,
MUIA_Text_Contents, "Zoom",
End,
Child, zoomin =3D KeyButton("In",'+'),
Child, zoomout =3D KeyButton("Out",'-'),
Child, HVSpace,
Child, VGroup,
TextFrame,
MUIA_Background, MUII_TextBack,
Child, xcoordtxt =3D TextObject, End,
Child, ycoordtxt =3D TextObject, End,
Child, zcoordtxt =3D TextObject, End,
End,
End,
Child, viewgr =3D ColGroup(2),
MUIA_Group_HorizSpacing, 1,
MUIA_Group_VertSpacing, 1,
Child, view1 =3D ViewObject,
VirtualFrame,
MUIA_View_Mode, MUIV_View_Mode_Top,
MUIA_View_X, f2l(0.0),
MUIA_View_Y, f2l(0.0),
MUIA_View_Z, f2l(0.0),
MUIA_View_Zoom, f2l(0.1),
MUIA_View_GridSize, f2l(1.0),
End,
Child, view2 =3D ViewObject,
VirtualFrame,
MUIA_View_Mode, MUIV_View_Mode_Persp,
MUIA_View_X, f2l(0.0),
MUIA_View_Y, f2l(0.0),
MUIA_View_Z, f2l(0.0),
MUIA_View_Zoom, f2l(0.1),
MUIA_View_GridSize, f2l(1.0),
End,
Child, view3 =3D ViewObject,
VirtualFrame,
MUIA_View_Mode, MUIV_View_Mode_Face,
MUIA_View_X, f2l(0.0),
MUIA_View_Y, f2l(0.0),
MUIA_View_Z, f2l(0.0),
MUIA_View_Zoom, f2l(0.1),
MUIA_View_GridSize, f2l(1.0),
End,
Child, view4 =3D ViewObject,
VirtualFrame,
MUIA_View_Mode, MUIV_View_Mode_Left,
MUIA_View_X, f2l(0.0),
MUIA_View_Y, f2l(0.0),
MUIA_View_Z, f2l(0.0),
MUIA_View_Zoom, f2l(0.1),
MUIA_View_GridSize, f2l(1.0),
End,
End,
End,
Child, HGroup,
Child, gridsizetxt =3D TextObject,
TextFrame,
MUIA_Background, MUII_TextBack,
MUIA_Text_Contents, "Grid:",
End,
Child, poks =3D SimpleButton("MUI Settings..."),
End,
End
{
obj->Zoom =3D 0.1;
poks->_Notify(MUIA_Pressed,FALSE,MUIV_Notify_Application,2,MUIM_Applicat=
ion_OpenConfigWindow,0);
newobj->_Notify(MUIA_Pressed,FALSE,obj,1,MUIM_Mainwin_New);
loadobj->_Notify(MUIA_Pressed,FALSE,obj,1,MUIM_Mainwin_Load);
zoomin->_Notify(MUIA_Pressed,FALSE,obj,1,MUIM_Mainwin_ZoomIn);
zoomout->_Notify(MUIA_Pressed,FALSE,obj,1,MUIM_Mainwin_ZoomOut);
ehnode.ehn_Priority =3D 0;
ehnode.ehn_Flags =3D 0;
ehnode.ehn_Object =3D obj;
ehnode.ehn_Class =3D NULL;
ehnode.ehn_Events =3D IDCMP_RAWKEY | IDCMP_MOUSEMOVE;
obj->Window_AddEventHandler(&ehnode);
objreq =3D MUI_AllocAslRequestTags(ASL_FileRequest,
ASLFR_InitialDrawer, "3D:",
ASLFR_InitialPattern, "#?.(lwo|img)",
ASLFR_DoPatterns, TRUE,
ASLFR_RejectIcons, TRUE,
TAG_DONE);
Model =3D AllocModel();
/* {
vertex_t *v[8];
polygon_t *p;
v[0] =3D AddVertex(Model); v[0]->x =3D -1.0; v[0]->y =3D 1.0; v[0]->z =3D=
1.0;
v[1] =3D AddVertex(Model); v[1]->x =3D 1.0; v[1]->y =3D 1.0; v[1]->z =3D=
1.0;
v[2] =3D AddVertex(Model); v[2]->x =3D -1.0; v[2]->y =3D -1.0; v[2]->z =
=3D 1.0;
v[3] =3D AddVertex(Model); v[3]->x =3D 1.0; v[3]->y =3D -1.0; v[3]->z =3D=
1.0;
v[4] =3D AddVertex(Model); v[4]->x =3D -1.0; v[4]->y =3D 1.0; v[4]->z =3D=
-1.0;
v[5] =3D AddVertex(Model); v[5]->x =3D 1.0; v[5]->y =3D 1.0; v[5]->z =3D=
-1.0;
v[6] =3D AddVertex(Model); v[6]->x =3D -1.0; v[6]->y =3D -1.0; v[6]->z =
=3D -1.0;
v[7] =3D AddVertex(Model); v[7]->x =3D 1.0; v[7]->y =3D -1.0; v[7]->z =3D=
-1.0;
p =3D AddPolygon(Model); AddPolyvert(p,v[0]); AddPolyvert(p,v[1]); AddPo=
lyvert(p,v[3]); AddPolyvert(p,v[2]);
p =3D AddPolygon(Model); AddPolyvert(p,v[4]); AddPolyvert(p,v[5]); AddPo=
lyvert(p,v[7]); AddPolyvert(p,v[6]);
p =3D AddPolygon(Model); AddPolyvert(p,v[0]); AddPolyvert(p,v[1]); AddPo=
lyvert(p,v[5]); AddPolyvert(p,v[4]);
p =3D AddPolygon(Model); AddPolyvert(p,v[2]); AddPolyvert(p,v[3]); AddPo=
lyvert(p,v[7]); AddPolyvert(p,v[6]);
}
*/
//LoadModel("CC:Lambda/orig/freighter.lwo",Model);
//LoadModel("CC:Lambda/orig/mfighter2.img",Model);
viewgr->View_Model =3D Model;
}
super Method Mainwin::OM_DISPOSE()
{
obj->Window_RemEventHandler(&ehnode);
MUI_FreeAslRequest(objreq);
FreeModel(Model);
}
super Method Mainwin::MUIM_HandleEvent()
{
Object *mouseobj =3D (Object *)obj->Window_MouseObject;
if (msg->imsg)
{
if (mouseobj =3D=3D view1)
{
switch(msg->imsg->Class)
{
case IDCMP_RAWKEY:
switch(msg->imsg->Code)
{
case 76:
viewgr->View_ScrollZPos();
mreturn MUI_EventHandlerRC_Eat;
break;
case 77:
viewgr->View_ScrollZNeg();
mreturn MUI_EventHandlerRC_Eat;
break;
case 79:
viewgr->View_ScrollXPos();
mreturn MUI_EventHandlerRC_Eat;
break;
case 78:
viewgr->View_ScrollXNeg();
mreturn MUI_EventHandlerRC_Eat;
break;
}
break;
case IDCMP_MOUSEMOVE:
xcoordtxt->Contents =3D "X 0.0 m";
ycoordtxt->Contents =3D NULL;
zcoordtxt->Contents =3D "Z 0.0 m";
break;
}
}
else if (mouseobj =3D=3D view3)
{
switch(msg->imsg->Class)
{
case IDCMP_RAWKEY:
switch(msg->imsg->Code)
{
case 76:
viewgr->View_ScrollYPos();
mreturn MUI_EventHandlerRC_Eat;
break;
case 77:
viewgr->View_ScrollYNeg();
mreturn MUI_EventHandlerRC_Eat;
break;
case 79:
viewgr->View_ScrollXPos();
mreturn MUI_EventHandlerRC_Eat;
break;
case 78:
viewgr->View_ScrollXNeg();
mreturn MUI_EventHandlerRC_Eat;
break;
}
break;
case IDCMP_MOUSEMOVE:
xcoordtxt->Contents =3D "X 0.0 m";
ycoordtxt->Contents =3D "Y 0.0 m";
zcoordtxt->Contents =3D NULL;
break;
}
}
else if (mouseobj =3D=3D view4)
{
switch(msg->imsg->Class)
{
case IDCMP_RAWKEY:
switch(msg->imsg->Code)
{
case 76:
viewgr->View_ScrollYPos();
mreturn MUI_EventHandlerRC_Eat;
break;
case 77:
viewgr->View_ScrollYNeg();
mreturn MUI_EventHandlerRC_Eat;
break;
case 79:
viewgr->View_ScrollZNeg();
mreturn MUI_EventHandlerRC_Eat;
break;
case 78:
viewgr->View_ScrollZPos();
mreturn MUI_EventHandlerRC_Eat;
break;
}
break;
case IDCMP_MOUSEMOVE:
xcoordtxt->Contents =3D NULL;
ycoordtxt->Contents =3D "Y 0.0 m";
zcoordtxt->Contents =3D "Z 0.0 m";
break;
}
}
else
{
if (msg->imsg->Class =3D=3D IDCMP_MOUSEMOVE)
{
xcoordtxt->Contents =3D NULL;
ycoordtxt->Contents =3D NULL;
zcoordtxt->Contents =3D NULL;
}
}
}
mreturn 0;
}
Method Mainwin::New()
{
RemAllVertices(Model);
MUI_Redraw(viewgr,MADF_DRAWOBJECT);
}
static __saveds __asm void IntuiMsgFunc(register __a1 struct IntuiMessage=
*imsg,register __a2 struct FileRequester *req)
{
if (imsg->Class =3D=3D IDCMP_REFRESHWINDOW)
DoMethod(req->fr_UserData,MUIM_Application_CheckRefresh);
}
Method Mainwin::Load()
{
static char buf[512];
static const struct Hook IntuiMsgHook =3D { { 0,0 },(void *)IntuiMsgFunc=
,NULL,NULL };
Object *app =3D (Object *)obj->_ApplicationObject;
set(app,MUIA_Application_Sleep,TRUE);
if (MUI_AslRequestTags(objreq,
ASLFR_Window, obj->Window_Window,
ASLFR_TitleText, "Load an object",
ASLFR_DoSaveMode, FALSE,
ASLFR_UserData, app,
ASLFR_IntuiMsgFunc, &IntuiMsgHook,
TAG_DONE,0))
{
if (*objreq->fr_File)
{
stccpy(buf,objreq->fr_Drawer,sizeof(buf));
AddPart(buf,objreq->fr_File,sizeof(buf));
LoadModel(buf,Model);
MUI_Redraw(viewgr,MADF_DRAWOBJECT);
}
}
set(app,MUIA_Application_Sleep,FALSE);
}
static char *getfilename(Object *win,char *title,char *dir,char *pattern,=
char save)
{
static char buf[512];
struct FileRequester *req;
struct Window *w;
static long left=3D-1,top=3D-1,width=3D-1,height=3D-1;
Object *app =3D (Object *)BCC_XGet(win,MUIA_ApplicationObject);
char *res =3D NULL;
static const struct Hook IntuiMsgHook =3D { { 0,0 },(VOID *)IntuiMsgFunc=
,NULL,NULL };
get(win,MUIA_Window_Window,&w);
if (left=3D=3D-1)
{
left =3D w->LeftEdge+w->BorderLeft+2;
top =3D w->TopEdge+w->BorderTop+2;
width =3D w->Width-w->BorderLeft-w->BorderRight-4;
height =3D w->Height-w->BorderTop-w->BorderBottom-4;
}
if (req=3DMUI_AllocAslRequestTags(ASL_FileRequest,
ASLFR_Window, w,
ASLFR_TitleText, title,
ASLFR_InitialLeftEdge, left,
ASLFR_InitialTopEdge , top,
ASLFR_InitialWidth , width,
ASLFR_InitialHeight , height,
ASLFR_InitialDrawer , dir,
ASLFR_InitialPattern , pattern,
ASLFR_DoSaveMode , save,
ASLFR_DoPatterns , TRUE,
ASLFR_RejectIcons , TRUE,
ASLFR_UserData , app,
ASLFR_IntuiMsgFunc , &IntuiMsgHook,
TAG_DONE))
{
set(app,MUIA_Application_Sleep,TRUE);
if (MUI_AslRequestTags(req,TAG_DONE))
{
if (*req->fr_File)
{
res =3D buf;
stccpy(buf,req->fr_Drawer,sizeof(buf));
AddPart(buf,req->fr_File,sizeof(buf));
}
left =3D req->fr_LeftEdge;
top =3D req->fr_TopEdge;
width =3D req->fr_Width;
height =3D req->fr_Height;
}
MUI_FreeAslRequest(req);
set(app,MUIA_Application_Sleep,FALSE);
}
return(res);
}
Method Mainwin::ZoomIn()
{
obj->Zoom =3D f2l(Zoom * 1.25);
}
Method Mainwin::ZoomOut()
{
obj->Zoom =3D f2l(Zoom /=A01.25);
}
Attribute Mainwin::Zoom:S(long zoom)
{
char buf[64];
Zoom =3D l2f(zoom);
GridSize =3D pow(10.0,floor(log10(0.1 / Zoom)));
if (fract(log10(1.0 /=A0Zoom)) > 0.699) GridSize *=3D 5.0;
else if (fract(log10(1.0 /=A0Zoom)) > 0.301) GridSize *=3D 2.0;
if (GridSize >=3D 1000000.0)
sprintf(buf,"Grid: %d Mm",(long)(GridSize /=A01000000.0));
else if (GridSize >=3D 1000.0)
sprintf(buf,"Grid: %d km",(long)(GridSize /=A01000.0));
else if (GridSize >=3D 1.0)
sprintf(buf,"Grid: %d m",(long)GridSize);
else if (GridSize >=3D 0.01)
sprintf(buf,"Grid: %d cm",(long)(GridSize * 100.0));
else
sprintf(buf,"Grid: %d mm",(long)(GridSize * 1000.0));
gridsizetxt->Contents =3D buf;
viewgr->View_Zoom =3D f2l(Zoom);
viewgr->View_GridSize =3D f2l(GridSize);
MUI_Redraw(viewgr,MADF_DRAWOBJECT);
}
--BOUNDARY.7316.21.2017292592.1
Content-Type: text/plain; name="App.bh"
Class App:MUIC_Application
{
MUI Class Window *mainwin;
};
--BOUNDARY.7316.21.2017292592.1
Content-Type: text/plain; name="Mainwin.bh"
Class Mainwin:MUIC_Window
{
MUI Class Group *viewgr;
MUI Class View *view1,*view2,*view3,*view4;
MUI Class Area *newobj;
MUI Class Area *loadobj;
MUI Class Area *zoomin;
MUI Class Area *zoomout;
MUI Class Text *xcoordtxt,*ycoordtxt,*zcoordtxt;
MUI Class Text *gridsizetxt;
MUI Class Area *poks;
struct MUI_EventHandlerNode ehnode;
struct FileRequester *objreq;
model_t *Model;
float Zoom,GridSize;
Method New();
Method Load();
Method ZoomIn();
Method ZoomOut();
Attribute Zoom:S;
};
--BOUNDARY.7316.21.2017292592.1
Content-Type: text/plain; name="View.bh"
#define MUIV_View_Mode_Face 0
#define MUIV_View_Mode_Top 1
#define MUIV_View_Mode_Left 2
#define MUIV_View_Mode_Persp 3
Class View:MUIC_Area
{
short Mode;
float X,Y,Z;
float Zoom,GridSize;
float FactorX,FactorY;
model_t *Model;
Attribute Mode:I;
Attribute X:ISG;
Attribute Y:ISG;
Attribute Z:ISG;
Attribute Zoom:ISG;
Attribute GridSize:ISG;
Attribute Model:ISG;
Method ScrollXPos();
Method ScrollXNeg();
Method ScrollYPos();
Method ScrollYNeg();
Method ScrollZPos();
Method ScrollZNeg();
};
--BOUNDARY.7316.21.2017292592.1--